#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QGLWidget>
#include <QGLFunctions>
#include <QMatrix4x4>
#include <QQuaternion>
#include <QVector2D>
#include <QBasicTimer>
#include <QGLShaderProgram>

namespace GraphicConnector
{
	class GraphicConnectorPlugin;
}

namespace GameController
{
	class GameControllerPlugin;
}

class MainWidget
	:	public QGLWidget
	,	protected QGLFunctions
{
	Q_OBJECT

public:
	explicit MainWidget(
			GameController::GameControllerPlugin* _gameController
		,	GraphicConnector::GraphicConnectorPlugin* _graphicsController
		,	QWidget *parent = 0
		);

	~MainWidget();
	void timerEvent(QTimerEvent *e);
	void updateGraphics();


private:
	QBasicTimer timer;
	GraphicConnector::GraphicConnectorPlugin* m_graphics;
	GameController::GameControllerPlugin* m_gameController;
};


#endif // MAINWIDGET_H

